import { useI18n } from '/@/hooks/web/useI18n';
import { dateUtil } from '/@/utils/dateUtil';
import { isNumber, isObject } from '/@/utils/is';
const { t } = useI18n();
/**
 * @description: 生成placeholder
 */
export function createPlaceholderMessage(component) {
    if (component.includes('Input') || component.includes('Complete')) {
        return t('common.inputText');
    }
    if (component.includes('Picker')) {
        return t('common.chooseText');
    }
    if (component.includes('Select') ||
        component.includes('Cascader') ||
        component.includes('Checkbox') ||
        component.includes('Radio') ||
        component.includes('Switch')) {
        // return `请选择${label}`;
        return t('common.chooseText');
    }
    return '';
}
const DATE_TYPE = ['DatePicker', 'MonthPicker', 'WeekPicker', 'TimePicker'];
function genType() {
    return [...DATE_TYPE, 'RangePicker'];
}
export function setComponentRuleType(rule, component, valueFormat) {
    if (['DatePicker', 'MonthPicker', 'WeekPicker', 'TimePicker'].includes(component)) {
        rule.type = valueFormat ? 'string' : 'object';
    }
    else if (['RangePicker', 'Upload', 'CheckboxGroup', 'TimePicker'].includes(component)) {
        rule.type = 'array';
    }
    else if (['InputNumber'].includes(component)) {
        rule.type = 'number';
    }
}
export function processDateValue(attr, component) {
    const { valueFormat, value } = attr;
    if (valueFormat) {
        attr.value = isObject(value) ? dateUtil(value).format(valueFormat) : value;
    }
    else if (DATE_TYPE.includes(component) && value) {
        attr.value = dateUtil(attr.value);
    }
}
export function handleInputNumberValue(component, val) {
    if (!component)
        return val;
    if (['Input', 'InputPassword', 'InputSearch', 'InputTextArea'].includes(component)) {
        return val && isNumber(val) ? `${val}` : val;
    }
    return val;
}
/**
 * 时间字段
 */
export const dateItemType = genType();
